Swift 時代の新定番!iOS アプリ開発で使えるオススメのオープンソースライブラリまとめ
Swift で使えるオープンソースライブラリ
2014年は新言語 Swift が登場し、iOS アプリ開発者にとってはかなり印象深い年になったのではないでしょうか。Swift の登場以後、さまざまな取り組みが iOS アプリ開発者の中で行われ、その結果の1つとしてオープンソースライブラリもかなり増えました。
Swift で一から書かれたものもあれば、既存のものを Swift でも使えるようにアップデートしてくれているものもあります。ある意味、混沌としている現状では「じゃあいまから Swift で iOS アプリ開発するときに何を使えば良いの!?」といったことになりかねません。ということで、現在までに公開されている Swift で使えるオープンソースライブラリを目的別にまとめてみました。
Swift アドベントカレンダーのために書いた記事なので、タイトルには「Swift 時代の」としていますが、Swift では Objective-C で書かれた OSS も利用できるため、Swift 登場以前の OSS も多数掲載しています。Swift で iOS アプリを実装するときに便利な OSS のまとめとして参考にしていただければ幸いです。
今回ご紹介するライブラリは、もちろん全て無料で利用できます!また、採用時に手間にならないようライセンスも掲載しました。
目次
UI
名前 | 機能 | ライセンス |
---|---|---|
MBProgressHUD | プログレスの表示 | MIT License |
MRProgress | プログレスの表示 | MIT License |
CRToast | トーストの表示 | MIT License |
TTTAttributedLabel | ラベルの装飾 | MIT License |
OHAttributedLabel | ラベルの装飾 | MIT License |
LTMorphingLabel | ラベルの装飾とアニメーション | MIT License |
PSCollectionView | Pinterest 風 CollectionView | BSD License |
JSQMessagesViewController | 標準 Message アプリ風 ViewController | MIT License |
JASidePanels | ドロワーメニュー | MIT License |
QuickDialog | 設定画面 | Apache License 2.0 |
SMPageControl | UIPageControl のカスタマイズ | MIT License |
Pop | アニメーション | BSD License |
FlatUIKit | フラット UI のテーマ | MIT License |
PureLayout | Auto Layout の記述を簡単する | MIT License |
Cartography | Auto Layout の記述を簡単する | MIT License |
言語機能の拡張
名前 | 機能 | ライセンス |
---|---|---|
Dollar.swift | Underscore.js ライクに記述(独自型) | MIT License |
ExSwift | Underscore.js ライクに記述(既存型の拡張) | BSD License |
Swiftz | 関数型プログラミング記法のサポート | BSD License |
Basis | 関数型プログラミング記法のサポート | MIT License |
ReactKit | リアクティブプログラミング記法のサポート | MIT License |
ReactiveCocoa | リアクティブプログラミング記法のサポート | MIT License |
Euler | 数学で利用する特殊文字の演算子の定義 | MIT License |
SwiftState | ステートマシンの実装 | MIT License |
標準フレームワークの拡張
名前 | 機能 | ライセンス |
---|---|---|
LGBluetooth | CoreBluetooth を使いやすくする | MIT License |
PeerKit | Multipeer Connectivity を使いやすくする | MIT License |
CargoBay | StoreKit (In-App Purchases) を使いやすくする | MIT License |
ローカルデータベース
名前 | 機能 | ライセンス |
---|---|---|
Realm | SQLite & CoreData より高速な次世代 DB | Apache License 2.0 |
SugarRecord | CoreData & Realm 両対応 DB | MIT License |
MagicalRecord | Active Record パターンの DB 管理 | MIT License |
Couchbase Lite | NoSQL のドキュメント指向型 DB エンジン | Apache License 2.0 |
通信処理
名前 | 機能 | ライセンス |
---|---|---|
AFNetworking | ネットワーク通信処理 | MIT License |
Alamofire | ネットワーク通信処理 | MIT License |
Reachability | ARC, GDP 対応の Reachability | MIT License |
データ・ファイル処理
名前 | 機能 | ライセンス |
---|---|---|
SwiftyJSON | JSON データの扱いをより簡単にする | MIT License |
Mantle | JSON, XML 両対応のデータモデリングフレームワーク | MIT License |
Surge | 計算処理を高速にする | MIT License |
SSZipArchive | Zip ファイルの解凍・圧縮 | MIT License |
SSKeyChain | Keychain にパスワードを簡単に保存する | MIT License |
非同期処理
名前 | 機能 | ライセンス |
---|---|---|
Bolts | 非同期処理を柔軟に管理 | BSD License |
BrightFutures | 制御フローライクに非同期処理を記述 | MIT License |
SwiftTask | 制御フローライクに非同期処理を記述 | MIT License |
カメラ・画像処理
名前 | 機能 | ライセンス |
---|---|---|
ImageScout | 画像ファイルを低コストでダウンロードする | MIT License |
SDWebImage | 画像のダウンロードとキャッシュの管理 | MIT License |
GPUImage | GPU を利用した画像フィルタの高速処理・リアルタイム処理 | BSD License |
NYXImagesKit | 画像編集の UIImage カテゴリ拡張 | BSD License |
ログ出力
名前 | 機能 | ライセンス |
---|---|---|
CocoaLumberjack | ログ出力 | BSD License |
XCGLogger | ログ出力 | MIT License |
アプリの説明、レビュー
名前 | 機能 | ライセンス |
---|---|---|
EAIntroView | ウォークスルーの表示 | MIT license |
Appirater | レビュー促進ダイアログの表示 | MIT License |
テスト
名前 | 機能 | ライセンス |
---|---|---|
Quick | BDD スタイルのテスティングフレームワーク | Apache License 2.0 |
Sleipnir | BDD スタイルのテスティングフレームワーク | MIT License |
Nimble | マッチャー | Apache License 2.0 |
OHHTTPStubs | HTTP 通信のスタブを提供 | MIT License |
パッケージ管理について
OSS をアプリに取り込むには、パッケージ管理ツールを利用するのが一般的です。Swift 製アプリのプロジェクトで利用できるパッケージ管理ツールは CocoaPods と Carthage の2つがあります。なお、いずれも現状では iOS 8 がターゲットのプロジェクトしか利用できません *1。iOS 7 をターゲットとしたプロジェクトで OSS を利用するには、OSS のプロジェクトを直接取り込む必要があります。
CocoaPods
CocoaPods の Swift 対応は開発中のためリリースされている最新バージョンでは利用できませんが、Swift 対応開発ブランチをチェックアウトすることで利用可能です。
2015/01/26 追記 CocoaPods 0.36 で Swift がサポートされました!現在は Beta ですので、以下のコマンドでインストールすることができます。
sudo gem install cocoapods --pre
Carthage
Carthage (カルタゴ) は Swift に対応した、比較的新しいパッケージ管理ツールです。CocoaPods と異なり、Dynamic Framework として直接取り込む方式で管理されます。Cartfile というファイルを作成し、このファイル内に利用したい OSS を記述していきます。
- Carthage: Swift対応の新しいライブラリ管理
- iOSライブラリ管理ツールCarthageを試してみた - Qiita
- Carthageで始めるSwift development branch of ReactiveCocoa 3.0 - Qiita
まとめ
以上、オープンソースライブラリをまとめてみました。ぜひ参考にしていただければと思います。今後も良さそうなライブラリを見つけたら追記していきます!
明日は17日目、担当は fmtonakai さんです。お楽しみに!
脚注
- Dynamic Framework として取り込む方法は iOS 8 をターゲットとしたプロジェクトでしか利用できないため。 ↩